//求环的入口点
//给定一个链表的头节点  head ，返回链表开始入环的第一个节点。 如果链表无环，则返回 null。
// 思路三：双指针（均从起始位置移动）
struct ListNode* detectCycle(struct ListNode* head) {
	struct ListNode* fast = head;
	struct ListNode* slow = head;
	while (fast && fast->next) {
		slow = slow->next;
		fast = fast->next->next;
		if (fast == slow) {
			while (head != slow) {
				head = head->next;
				slow = slow->next;
			}
			return slow;
		}
	}
	return NULL;
}

